Image space-based particle generation modeling

ABSTRACT

Volume rendering is performed by a computer system, comprising: obtaining an original volume data, wherein the original volume data comprises a plurality of voxels, transforming each voxel of the plurality of voxels of the original volume data, for each voxel of the plurality of voxels, generating a particle from the transformed volume data with a probability corresponding to: −log(1−an opacity of each voxel), and projecting the particles on an image plane to obtain a 2D image corresponding to the original volume data.

BACKGROUND

The present invention relates generally to the field of volumerendering, and more particularly to image space-based particlegeneration modeling.

Volume rendering is a set of techniques used to visualize atwo-dimensional (2D) projection of a three-dimensional (3D) data set. Avariety of volume rendering techniques have been used for visualizingvolume data. For example, ray casting and Particle-Based VolumeRendering (PBVR) techniques have been used for volume rendering.

SUMMARY

According to a first aspect of the present invention, provided is amethod, including obtaining an original volume data, transforming theoriginal volume data based on a distance from a viewpoint to theoriginal volume data, to generate transformed volume data, generatingparticles from the transformed volume data, and projecting the particleson an image plane to obtain a 2D image corresponding to the originalvolume data.

The first aspect may also include an apparatus performing this method,and a computer system storing instructions embodied on acomputer-readable medium or programmable circuitry, for causing aprocessor or the programmable circuitry to perform the method. Thesummary clause does not necessarily describe all features of theembodiments of the present invention. Embodiments of the presentinvention may also include sub-combinations of the features describedabove.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an exemplary configuration of an apparatus 10, according toan embodiment of the present invention.

FIG. 2 shows an operational flow according to an embodiment of thepresent invention.

FIG. 3 shows a relationship between an image plane and an originalvolume data according to an embodiment of the present invention.

FIG. 4 shows a relationship between an image plane and a transformedvolume data according to an embodiment of the present invention.

FIG. 5 shows a relationship between the transformed volume data andtransformed voxel data.

FIG. 6 shows a sub-flow of S150 according to an embodiment of thepresent invention.

FIG. 7 shows particles according to an embodiment of the presentinvention.

FIG. 8 shows a particle and sub-particles in the particle according toan embodiment of the present invention.

FIG. 9 shows a particle including boundary surface of the transformedvolume data according to an embodiment of the present invention.

FIG. 10 shows a 2D image and the particles according to an embodiment ofthe present invention.

FIG. 11 shows an exemplary hardware configuration of a computer thatfunctions as a system, according to an embodiment of the presentinvention.

DETAILED DESCRIPTION

Embodiments of the present invention recognize that current volumerendering techniques for visualizing volume data, such as ray castingand Particle-Based Volume Rendering (PBVR), require significantcomputational resources. Embodiments of the present invention providetechniques for accurate volume rendering while requiring fewercomputational resources.

Hereinafter, example embodiments of the present invention will bedescribed. The example embodiments shall not limit the inventionaccording to the claims, and the combinations of the features describedin the embodiments are not necessarily essential to the invention.

FIG. 1 shows an exemplary configuration of an apparatus 10, according toan embodiment of the present invention. The apparatus 10 may performvolume rendering of volume data. The apparatus 10 may include aprocessor and/or programmable circuitry.

The apparatus 10 may further include one or more computer readablemediums collectively including instructions. The instructions may beembodied on the computer readable medium and/or programmable circuitry.The instructions, when executed by the processor or the programmablecircuitry, may cause the processor or the programmable circuitry tooperate as a plurality of operating sections. Thereby, the apparatus 10may be regarded as including a storing section 100, an obtaining section110, a transforming section 130, a generating section 150, a projectingsection 170, and an ensembling section 190.

The storing section 100 may store information used for the processingthat the apparatus 10 performs. The storing section 100 may also store avariety of data/instructions used for operations of the apparatus 10.One or more other elements in the apparatus 10 (e.g., the obtainingsection 110, the transforming section 130, the generating section 150,the projecting section 170, the ensembling section 190, etc.) maycommunicate data directly or via the storing section 100, as necessary.The storing section may be implemented by a volatile or non-volatilememory of the apparatus 10. In an embodiment, the storing section 100stores original volume data, transformed volume data, and other datarelated thereto.

The obtaining section 110 may obtain an original volume data. Theobtaining section 110 may obtain the original volume data from thestoring section 100 or an external database, such as a database 20. Inan embodiment, the original volume data includes a plurality of voxels,each of which may have information of opacity and/or color.

The transforming section 130 may transform the original volume data togenerate transformed volume data. In an embodiment, the transformingsection 130 performs the transformation based on a distance from aviewpoint to the original volume data. In an embodiment, thetransforming section 130 generates the transformed volume data bytransforming 3D position coordination of the original volume data. Thetransforming section 130 may further divide the transformed volume datainto a plurality of voxels.

The generating section 150 may generate particles from the transformedvolume data. In an embodiment, the particles correspond to micro opaqueportions of the object(s) in the transformed volume data. In anembodiment, the generating section 150 stochastically generates theparticles based on the transformed volume data.

The projecting section 170 may project the particles on an image plane.The projecting section 170 may generate a 2D image with the projectedparticles, and thereby obtain the 2D image corresponding to the originalvolume data. The projecting section 170 may obtain a plurality of the 2Dimages.

The ensembling section 190 may perform ensembling of the plurality of 2Dimages to generate an ensemble 2D image. The ensembling section 190 mayoutput the ensemble 2D image as a result of the volume rendering.

FIG. 2 shows an operational flow according to an embodiment of thepresent invention. The present embodiment describes an example in whichan apparatus, such as the apparatus 10, performs the operations fromS110 to S170, as shown in FIG. 2. The apparatus may perform volumerendering throughout S110-S170.

At S110, an obtaining section, such as the obtaining section 110, mayobtain an original volume data from a database such as the database 20.In an embodiment, the original volume data is voxel data, which mayrepresent one or more objects in 3D space.

The voxel data may include a plurality of voxels each having informationof brightness, darkness, color, opacity, and/or other characteristics.In an embodiment, each voxel includes opacity information, whichrepresents a degree to which each voxel is opaque (or transparent). Inan embodiment, each voxel further includes information of color (e.g.,brightness values in RGB format).

In an embodiment, the obtaining section further obtains parametersrelating to 3D rendering. For example, the obtaining section may receivea gaze direction, and/or, a distance between the viewpoint and a centerof a 3D space of the original volume data, from a user of the apparatus10. The obtaining section may further receive a location of a viewpointand/or a direction of the 3D space of the original volume data.

In an embodiment, some or all of these parameters are preset. Forexample, the distance between the viewpoint and the center of the 3Dspace of the original volume data may be initialized with a valuesuitable for proper volume rendering.

At S120, a transforming section, such as the transforming section 130,may build a 3D coordination system for the original volume data. In anembodiment, the transforming section performs coordinate conversion ofthe original volume data by rotating the original volume data based onthe gaze direction and/or the direction of the 3D space of the originalvolume data, to obtain a rotated original volume data.

A 3D space of the original volume data may have a cubic shape includingsides oblique to an image plane, which is normal to the gaze direction.The transforming section may rotate the original volume data such thatthe 3D space of the rotated original volume data may have a cubic shapeincluding sides parallel to the image plane. An angle of the rotationmay correspond to angle between the sides of the 3D space of theoriginal volume data and the image plane.

In an embodiment, the transforming section calculates positioncoordinates of voxels of the original volume data after a rotation. Thetransforming section may then determine values of voxels in a 3D spacebased on the values of the voxels of the original volume data and thecalculated position coordinates. The transforming section may obtain thedetermined values of the voxels of the 3D space as the rotated originalvolume data. The transforming section may perform the building of the 3Dcoordination system by other known algorithms.

In an embodiment, if the gaze direction is determined to match with the3D space of the original volume data, then the transforming section doesnot perform the operation of S120. Hereinafter, the original volume datawith or without the rotation may be collectively referred to as theoriginal volume data.

At S130, the transforming section may transform the original volume databased on a distance from a viewpoint to the original volume data, togenerate transformed volume data.

FIG. 3 shows a relationship between an image plane and an originalvolume data according to an embodiment of the present invention.According to FIG. 3, the original volume data 310 includes a cylindricalobject 320, which are represented by voxels of the original volume data310. As shown in FIG. 3, the original volume data 310 may correspond toa cubic space or a rectangular parallelepiped space.

The cylindrical object 320 includes a first circular side 312, and asecond circular side 314, which is more distant to an image plane 301(which is parallel to an x-y plane). When projecting the cylindricalobject 320 on the image plane 301 toward a viewpoint 300, a firstprojection 303 of the first side 312 and a second projection 305 of thesecond side 314 are formed on the image plane 301.

In an embodiment, a distance between the viewpoint 300 and the imageplane 301 is defined as do. A distance between the viewpoint 300 and acenter of 3D space of the original volume data 310 is defined as z₀. Agaze direction is parallel to a z-axis.

FIG. 4 shows a relationship between an image plane and a transformedvolume data according to an embodiment of the present invention.According to FIG. 4, a transformed volume data 410 may represent atransformed cylindrical object 420. In an embodiment, the transformedvolume data 410 includes position coordinates of voxels and values ofthe voxels.

As shown in FIG. 4, the position coordinates of voxels of thetransformed volume data 410 may be located within a truncated pyramidshape. The transformed volume data 410 may include the transformedobject 420, which may have a truncated cone shape. A size of the imageplane 301 may be the same as the image plane 401.

The transformed object 420 includes a first circular side 412,corresponding to the first side 312, and a second circular side 414,corresponding to the second side 314. When projecting the transformedobject 420 on the image plane 301 in a direction of a normal vector ofthe image plane 401 (e.g., a direction of z-axis), a first projection403 of the first side 412 and a second projection 405 of the second side414 are formed on the image plane 401 (which is parallel to a x-yplane).

In an embodiment, the transforming section transforms the originalvolume data 310 as shown in FIG. 3 to the transformed volume data 410 asshown in FIG. 4. In the embodiment, the transforming section transformsthe original volume data 310 based on the distance from the viewpoint300 to a cross-sectional plane (which is parallel to the image plane301) of the original volume data 310.

In the embodiment, the transforming section transforms the originalvolume data 310 such that a cross-sectional plane parallel to a x-yplane in the original volume data 310 is diminished or enlarged by afactor proportional to a distance from the viewpoint 300 to thecross-sectional plane.

In the embodiment, the transforming section transforms the originalvolume data 310 such that a length of the transformed volume data 410intersecting the cross-sectional plane is equal to a length of theoriginal volume data 310 projected on the image plane 301 toward theviewpoint 300. For example, a size of the first projection 303 may beequal to a size of the first projection 403, and a size of the secondprojection 305 may be equal to a size of the second projection 405.

In an embodiment, the transforming section calculates (x′, y′, z′)according to the following formula (1):

$\begin{matrix}{{\begin{pmatrix}x^{\prime} \\y^{\prime} \\z^{\prime}\end{pmatrix} = {\begin{pmatrix}\frac{d_{0}}{z} & 0 & 0 \\0 & \frac{d_{0}}{z} & 0 \\0 & 0 & \frac{d_{0}}{z_{0}}\end{pmatrix}\begin{pmatrix}x \\y \\z\end{pmatrix}}},} & (1)\end{matrix}$

where (x, y, z) represents coordinates of the voxels of the originalvolume data 310, and (x′, y′, z′) represents the coordinates of thetransformed volume data 410.

The values (e.g., opacity and color) of a voxel at (x, y, z) of theoriginal volume data may be represented as f(x, y, z). For example, avoxel located at the x-th position on the x-axis, the y-th position onthe y-axis, and the z-th position on the z-axis may have values f(x, y,z).

The values at (x, y, z) in the transformed volume data is shown as f′(x,y, z). Assuming that coordinates of the original volume data (1, 1, 1) .. . (N, N, N) are transformed as (X₁, Y₁, Z₁) . . . (X_(N), Y_(N),Z_(N)), then f(a, b, c) is equal to f′(X_(a), Y_(b), Z_(c)).

In an embodiment, the transforming section generates a set of (X₁, Y₁,Z₁) and f′(X₁, Y₁, Z₁), a set of (X₂, Y₂, Z₂) and f′(X₂, Y₂, Z₂), . . ., and a set of (X_(N), Y_(N), Z_(N)) and f′(X_(N), Y_(N), Z_(N)) as thetransformed volume data, from N×N×N voxels of the original volume data.For example, the transforming section may apply (1, 1, 1) . . . (N, N,N) to the above formula (1) as (x, y, z) to obtain (X₁, Y₁, Z₁) . . .(X_(N), Y_(N), Z_(N)) as (x′, y′, z′), and obtain values of f(1, 1, 1) .. . f(N, N, N) as f′(X₁, Y₁, Z₁) . . . f′(X_(N), Y_(N), Z_(N)).

After generating the transformed volume data, the transforming sectionmay generate transformed voxel data based on the transformed volumedata. The transformed voxel data may include a plurality of voxels thatcover the space of the transformed volume data. Position coordinates ofthe plurality of voxels of the transformed voxel data may be representedas (1, 1, 1), . . . (P, P, Q).

FIG. 5 shows a relationship between the transformed volume data 510 andtransformed voxel data 590. In an embodiment, a space of the transformedvoxel data 590 encompasses a space of the transformed volume data 510(indicated by dashed lines).

In the embodiment of FIG. 5, Q is 8, P is 6, and position coordinates ofvoxels of the transformed voxel data are (1, 1, 1) . . . (8, 8, 1), (1,1, 2) . . . (8, 8, 2), (1, 1, 3) . . . (8, 8, 3), (2, 2, 4) . . . (7, 7,4), (2, 2, 5) . . . (7, 7, 5), (2, 2, 6) . . . (7, 7, 6), (3, 3, 7) . .. (6, 6, 8), (3, 3, 7) . . . (6, 6, 8).

The transforming section may calculate values of voxels of thetransformed voxel data 590. The transforming section may performinterpolation for the transformed volume data 410 to obtain thetransformed voxel data 590. In an embodiment, the transforming sectioncalculates values of voxels in the transformed voxel data f′(1, 1, 1) .. . f′(N−M, N−M, N) based on the transformed volume data 410. In anembodiment, the transforming section performs the interpolation by knownalgorithms.

At S150, the apparatus may generate a 2D image of the transformed volumedata. In an embodiment, the apparatus performs a plurality of operationsof S150 to generate a plurality (e.g., tens or hundreds) of 2D images ofthe transformed volume data. In the embodiment, the apparatus performsthe operations of S150 in parallel.

FIG. 6 shows a sub-flow of S150 according to an embodiment of thepresent invention. In an embodiment, a generating section such as thegenerating section 150 and a projecting section such as the projectingsection 170 performs operations of S152-S154 to perform the operation ofS150 of FIG. 2.

At S152, the generating section may generate particles from thetransformed volume data. In an embodiment, the generating sectiondetermines whether to generate a particle for each voxel of theplurality of voxels of the transformed voxel data.

In an embodiment, the generating section generates a particle for eachvoxel with a probability corresponding to the opacity of each voxel ofthe transformed voxel data. For example, the generating section may bemore likely to generate particles for a voxel when opacity of the voxelis higher.

FIG. 7 shows particles according to an embodiment of the presentinvention. The transformed volume data 710 may correspond to thetransformed volume data 410 in FIG. 4. In the embodiment of FIG. 7, thegenerating section generates a particle 762, a particle 772, a particle774, a particle 776, a particle 782, and a particle 784 in a space ofthe transformed volume data 710.

The particle 762, the particle 772, the particle 774, the particle 776,the particle 782, and the particle 784 may be generated based on theircorresponding voxels in the transformed voxel data, such as thetransformed voxel data 590.

FIG. 8 shows a particle and sub-particles within the particle accordingto an embodiment of the present invention. In the embodiment of FIG. 8,a particle 802 includes three sub-particles 804. The particle 802 mayrepresent one particle, such as the particle 762, the particle 772, theparticle 774, the particle 776, the particle 782, and the particle 784in FIG. 7.

As shown in FIG. 8, a size of the particle 802 may be represented ass×s×l, where s may be a length in horizontal direction (e.g., y-axis)and a length in vertical direction (e.g., x-axis) of the particle 802,and l may be a length along with gaze direction (e.g., z-axis). In anembodiment, the lengths s and l are equal to a length of 1 pixel of a 2Dimage.

The generation of a particle by the generating section may be explainedwith the generation of sub-particles 804 in accordance with a Poissondistribution

${p(k)} = \frac{{\exp \left( {- n} \right)}n^{k}}{k!}$

along z-axis, where p(k) is a probability that k sub-particles aregenerated, and n is an expectation of a number of sub-particlesgenerated. The generating section may generate a particle for each voxelwhen one or more sub-particles are to be generated in each voxel. Thegenerating section may not generate a particle for each voxel when nosub-particles are to be generated in each voxel.

The sub-particles and the particles may be considered to be opaque. Assuch, when no sub-particles exist in a voxel, the voxel is totallytransparent. The possibility of no sub-particles (i.e., the possibilityof transparency) may be calculated as p(0)=exp(−n) according to theabove Poisson distribution p(k).

Opacity α of a voxel may relate to the number of sub-particles ngenerated in the voxel. In an embodiment, the opacity α is representedas: α=1−exp(−n)=1−exp(−ρs²l), where ρ is a density function. The densityfunction ρ can be represented as

${\rho = \frac{- {\log \left( {1 - \alpha} \right)}}{s^{2}l}},$

and when s and 1 are equal to 1 pixel, p is calculated as −log(1−α).

In an embodiment, the generating section generates one particle for eachvoxel with a probability corresponding to −log(1−α) (i.e., ρ), where αis an opacity of each voxel. In the embodiment, the generating sectiongenerates one particle in each voxel if ρ, as calculated from opacity αof each voxel, is equal to or larger than a predetermined value (e.g.,1), and generate one particle with a probability of ρ if ρ is smallerthan the predetermined value.

In an alternative embodiment, the generating section generates oneparticle with a probability corresponding to 1−exp(—ρ). In analternative embodiment, the generating section generates one particlewith a probability corresponding to the opacity α.

Each particle may include color information. In an embodiment, eachparticle has a color of a voxel corresponding to each particle. In theembodiment of FIG. 7, when a voxel corresponding to the particle 762 inthe transformed voxel data is green, then the particle 762 has colorinformation of green.

FIG. 9 shows a particle including boundary surface of the transformedvolume data according to an embodiment of the present invention. In anembodiment, such as when the transformed volume data (e.g., transformedvolume data 510 in FIG. 5) has a truncated pyramid shape, some voxels inthe transformed voxel data (e.g., transformed voxel data 590 in FIG. 5)include portions of a boundary surface of the truncated pyramid shape.For example, a voxel 962 may correspond to a voxel generating theparticle 762 in FIG. 7, and include the partial boundary surface 904,which is a portion of the truncated pyramid shape. Thereby, the particle962 may include a partial truncated pyramid shape 910.

In an embodiment, the generating section performs generation of theparticles for all voxels including the partial truncated pyramid shape910. In an embodiment, the generating section performs generation of theparticles for voxel(s) of which partial truncated pyramid shape islarger than a threshold (e.g., a half of volume of a voxel).

In an embodiment, the generating section performs generation of theparticles for all voxels, including the boundary surface, by multiplyinga proportion of a volume of the partial truncated pyramid shape by avolume of each voxel by the density function p of each voxel.

At S154, a projecting section, such as the projecting section 170, mayproject the particles generated at S152 on an image plane. The particlesprojected on the image plane may give a 2D image.

FIG. 10 shows a 2D image and the particles according to an embodiment ofthe present invention. Transformed volume data 1010 in FIG. 10 maycorrespond to the transformed volume data 710 in FIG. 7. A particle1062, a particle 1072, a particle 1074, a particle 1076, a particle1082, and a particle 1084 in FIG. 10 may correspond to the particle 762,the particle 772, the particle 774, the particle 776, the particle 782,and the particle 784 in FIG. 7.

In an embodiment, the projecting section projects only particle(s) thatare nearest the image plane among particles along a gaze direction(e.g., z-axis). In the embodiment of FIG. 10, the projecting sectionprojects the particle 1062, projects the particle 1072 among theparticles 1072-1076, and projects the particle 1082 between the particle1082 and the particle 1084. The particles behind the nearest particles(e.g., the particles 1074, 1076, and 1084) may not be projected and thusmay not be reflected in the 2D image.

The projecting section may project the particles in a direction parallelto a normal vector of the image plane. In an embodiment, the projectingsection projects the particles 1062, 1072, and 1082 in a direction ofz-axis.

An image plane 1001 may correspond to the image plane 401 in FIG. 4. The2D image may be generated by the projection of the particles on theimage plane 1001. In an embodiment, the 2D image includes a plurality ofpixels (e.g., 8×8 pixels in the embodiment of FIG. 10), and each of theparticles is projected on a pixel. For example, in FIG. 10, the particle1062 is projected on a pixel 1068, the particle 1072 is projected on apixel 1078, and the particle 1082 is projected on a pixel 1088.

A shape and/or size of each particle projected on the image plane may beidentical to a shape and/or size of each pixel in the 2D image. In theembodiment of FIG. 10, the shape and size of the particles 1062, 1072,1074, 1076, 1082, and 1084 projected on the image plane 1001 are thesame as the shape and size of each pixel of the 2D image on the imageplane 901.

At a single operation of S154, the projecting section may obtain asingle 2D image including the pixels, on which the particles areprojected. Since the generating section may stochastically generateparticles at S152, the projecting section may obtain different 2D imagesfrom the same transformed volume data at a plurality of operations ofS154 in the plurality of operations of S150.

At S170, an ensembling section, such as the ensembling section 190, mayensemble the plurality of 2D images to generate an ensembled image as aresult of volume rendering.

In an embodiment, the ensembling section obtains the plurality of the 2Dimages corresponding to the original volume data from the projectingsection. The ensembling section may then average the plurality of the 2Dimages to obtain an ensemble 2D image. The ensembling section mayperform the ensembling by known algorithms.

As explained in relation to the above embodiments, the apparatus mayfirst transform the original volume data so as to reflect theperspective view from the viewpoint, and thereby the projecting sectionmay project the particle in a direction normal to the image plane.

According to ray casting and PBVR, many computational resources may beneeded for accurate volume rendering, or tuning of hyper parameters(such as cell size) may be required. Meanwhile according theembodiments, the apparatus may perform accurate volume rendering usingless computational resources without such tuning of the hyperparameters.

FIG. 11 shows an exemplary hardware configuration of a computerconfigured for image space-based particle generation modeling, accordingto an embodiment of the present invention. A program that is installedin the computer 800 can cause the computer 800 to function as or performoperations associated with apparatuses of the embodiments of the presentinvention or one or more sections (including modules, components,elements, etc.) thereof, and/or cause the computer 800 to performprocesses of the embodiments of the present invention or steps thereof.Such a program may be executed by the CPU 800-12 to cause the computer800 to perform certain operations associated with some or all of theblocks of flowcharts and block diagrams described herein.

The computer 800 according to the present embodiment includes a CPU800-12, a RAM 800-14, a graphics controller 800-16, and a display device800-18, which are mutually connected by a host controller 800-10. Thecomputer 800 also includes input/output units such as a communicationinterface 800-22, a hard disk drive 800-24, a DVD-ROM drive 800-26 andan IC card drive, which are connected to the host controller 800-10 viaan input/output controller 800-20. The computer also includes legacyinput/output units such as a ROM 800-30 and a keyboard 800-42, which areconnected to the input/output controller 800-20 through an input/outputchip 800-40.

The CPU 800-12 operates according to programs stored in the ROM 800-30and the RAM 800-14, thereby controlling each unit. The graphicscontroller 800-16 obtains image data generated by the CPU 800-12 on aframe buffer or the like provided in the RAM 800-14 or in itself, andcauses the image data to be displayed on the display device 800-18.

The communication interface 800-22 communicates with other electronicdevices via a network 800-50. The hard disk drive 800-24 stores programsand data used by the CPU 800-12 within the computer 800. The DVD-ROMdrive 800-26 reads the programs or the data from the DVD-ROM 800-01, andprovides the hard disk drive 800-24 with the programs or the data viathe RAM 800-14. The IC card drive reads programs and data from an ICcard, and/or writes programs and data into the IC card.

The ROM 800-30 stores therein a boot program or the like executed by thecomputer 800 at the time of activation, and/or a program depending onthe hardware of the computer 800. The input/output chip 800-40 may alsoconnect various input/output units via a parallel port, a serial port, akeyboard port, a mouse port, and the like to the input/output controller800-20.

A program is provided by computer readable media such as the DVD-ROM800-01 or the IC card. The program is read from the computer readablemedia, installed into the hard disk drive 800-24, RAM 800-14, or ROM800-30, which are also examples of computer readable media, and executedby the CPU 800-12. The information processing described in theseprograms is read into the computer 800, resulting in cooperation betweena program and the above-mentioned various types of hardware resources.An apparatus or method may be constituted by realizing the operation orprocessing of information in accordance with the usage of the computer800.

For example, when communication is performed between the computer 800and an external device, the CPU 800-12 may execute a communicationprogram loaded onto the RAM 800-14 to instruct communication processingto the communication interface 800-22, based on the processing describedin the communication program. The communication interface 800-22, undercontrol of the CPU 800-12, reads transmission data stored on atransmission buffering region provided in a recording medium such as theRAM 800-14, the hard disk drive 800-24, the DVD-ROM 800-01, or the ICcard, and transmits the read transmission data to network 800-50 orwrites reception data received from network 800-50 to a receptionbuffering region or the like provided on the recording medium.

In addition, the CPU 800-12 may cause all or a necessary portion of afile or a database to be read into the RAM 800-14, the file or thedatabase having been stored in an external recording medium such as thehard disk drive 800-24, the DVD-ROM drive 800-26 (DVD-ROM 800-01), theIC card, etc., and perform various types of processing on the data onthe RAM 800-14. The CPU 800-12 may then write back the processed data tothe external recording medium.

Various types of information, such as various types of programs, data,tables, and databases, may be stored in the recording medium to undergoinformation processing. The CPU 800-12 may perform various types ofprocessing on the data read from the RAM 800-14, which includes varioustypes of operations, processing of information, condition judging,conditional branch, unconditional branch, search/replace of information,etc., as described throughout this disclosure and designated by aninstruction sequence of programs, and writes the result back to the RAM800-14.

In addition, the CPU 800-12 may search for information in a file, adatabase, etc., in the recording medium. For example, when a pluralityof entries, each having an attribute value of a first attribute isassociated with an attribute value of a second attribute, are stored inthe recording medium, the CPU 800-12 may search for an entry matchingthe condition whose attribute value of the first attribute isdesignated, from among the plurality of entries, and reads the attributevalue of the second attribute stored in the entry, thereby obtaining theattribute value of the second attribute associated with the firstattribute satisfying the predetermined condition.

The above-explained program or software modules may be stored in thecomputer readable media on or near the computer 800. In addition, arecording medium such as a hard disk or a RAM provided in a serversystem connected to a dedicated communication network or the Internetcan be used as the computer readable media, thereby providing theprogram to the computer 800 via the network.

The present invention may be a system, a method, and/or a computerprogram product. The computer program product may include a computerreadable storage medium (or media) having computer readable programinstructions thereon for causing a processor to carry out aspects of thepresent invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, or either source code or object code written in anycombination of one or more programming languages, including an objectoriented programming language such as Smalltalk, C++ or the like, andconventional procedural programming languages, such as the “C”programming language or similar programming languages. The computerreadable program instructions may execute entirely on the user'scomputer, partly on the user's computer, as a stand-alone softwarepackage, partly on the user's computer and partly on a remote computeror entirely on the remote computer or server. In the latter scenario,the remote computer may be connected to the user's computer through anytype of network, including a local area network (LAN) or a wide areanetwork (WAN), or the connection may be made to an external computer(for example, through the Internet using an Internet Service Provider).In some embodiments, electronic circuitry including, for example,programmable logic circuitry, field-programmable gate arrays (FPGA), orprogrammable logic arrays (PLA) may execute the computer readableprogram instructions by utilizing state information of the computerreadable program instructions to individualize the electronic circuitry,in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general-purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the block may occur out of theorder noted in the figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

While the embodiments of the present invention have been described, thetechnical scope of the invention is not limited to the above describedembodiments. It is apparent to persons skilled in the art that variousalterations and improvements can be added to the above-describedembodiments. It is also apparent from the scope of the claims that theembodiments added with such alterations or improvements can be includedin the technical scope of the invention.

The operations, procedures, steps, and stages of each process performedby an apparatus, system, program, and method shown in the claims,embodiments, or diagrams can be performed in any order as long as theorder is not indicated by “prior to,” “before,” or the like and as longas the output from a previous process is not used in a later process.Even if the process flow is described using phrases such as “first” or“next” in the claims, embodiments, or diagrams, it does not necessarilymean that the process must be performed in this order.

As made clear from the above, the embodiments of the present inventionenable proper volume rendering with less computational resources, bytransforming the original volume data and generating particles from thetransformed volume data.

What is claimed is:
 1. A computer system comprising: one or morecomputer processors; one or more computer readable storage media;program instructions stored on the computer readable storage media forexecution by at least one of the one or more processors, the programinstructions comprising: program instructions to obtain original volumedata, wherein the original volume data comprises a plurality of voxels;program instructions to transform each voxel of the plurality of voxelsof the original volume data, based on a distance from a viewpoint to across-sectional plane of the original volume data, to generate atransformed volume data, wherein the cross-sectional plane is parallelto an image plane, wherein the distance between the surface face of theoriginal volume data furthest from the viewer and the surface face ofthe original volume data closest to the viewer when the original volumedata is projected on to the image plane is equal to the length of thetransformed volume data along a gaze direction of the viewer; for eachvoxel of the plurality of voxels, program instructions to generate aparticle from the transformed volume data with a probabilitycorresponding to: −log(1−an opacity of each voxel), wherein the originalvolume data includes the opacity for each voxel; program instructions toproject the particles on an image plane to generate a 2D imagecorresponding to the original volume data, wherein: a normal vector ofthe image plane is parallel to a direction of the projecting theparticles, the 2D image includes a plurality of pixels, and wherein asize and shape of each pixel of the 2D image is identical to a size andshape of each particle projected on the image plane; programinstructions to generate a plurality of the 2D images corresponding tothe original volume data; and program instructions to average theplurality of the 2D images to generate an ensemble 2D image.